package main

import (
	"fmt"
	"log"
	"time"

	"github.com/robfig/cron/v3"
)

// NOTE: 基础用法

func main1() {
	// 创建一个新的 Cron 实例
	c := cron.New(cron.WithSeconds())

	// 添加一个每秒执行的任务
	_, err := c.AddFunc("* * * * * *", func() {
		fmt.Println("每秒执行的任务:", time.Now().Format("2006-01-02 15:04:05"))
	})
	if err != nil {
		log.Fatalf("添加任务失败: %v", err)
	}

	// 添加一个每 5 秒执行的任务
	_, err = c.AddFunc("*/5 * * * * *", func() {
		fmt.Println("每 5 秒执行的任务:", time.Now().Format("2006-01-02 15:04:05"))
	})
	if err != nil {
		log.Fatalf("添加任务失败: %v", err)
	}

	// 启动 Cron
	c.Start()
	defer c.Stop() // 确保程序退出时停止 Cron

	go func() {
		time.Sleep(60 * time.Second)
		fmt.Println("==============终止任务")

		c.Stop()
	}()

	// 主程序等待 10 秒，以便观察任务执行
	time.Sleep(100 * time.Second)
	fmt.Println("主程序结束")

}
